#写函数,将传入的列表或元祖对象的奇数位索引对应的元素
"""
def a(a1):
    for i in range(len(a1)):
        if  i%2 != 0:
            print(a1[i-1])
a([1,2,3,4,5])
"""
#写函数,判断用户传入的对象(string,list,tuple)长度是否大于5
"""
def a (a1):
    if len(a1) > 5:
        print("长度大于5")
    else:
        print("长度不大于5")
a([1,2,3,4,5,6])
"""
#写函数,计算传入的string中,数字,字母,空格以及其它内容的个数,并返回结果
"""
def a(a1):
    shuzi = 0
    zimu = 0
    kongge = 0
    for i in a1:
        if i in "123456789":
            shuzi += 1
        elif i > 'a' and i < 'z' or i > 'A' and i < 'Z':
            zimu += 1
        elif i == " " :
            kongge += 1
        else :
            pass
    print(shuzi,zimu,kongge)
a("123ds1fg316 sd1fg631d")
"""
#写函数,接收两个数字参数,返回较大的那个数字
"""
def a(a1,a2):
    if a1 > a2:
        return a1
    else:
        return a2
print(a(5,6))
"""
#编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组.
"""
def cacluate(*a):
    return(a)
"""
#编写一个函数, 接收字符串参数, 返回一个元组,元组的第一个值为大写字母的个数, 第二个值为小写字母个数.
"""
def a(a1):
    daxie = 0
    xiaoxie = 0
    for i in a1:
        if i >= "a" and i <= "z":
            xiaoxie += 1
        if i >= "A" and i <= "Z":
            daxie += 1
    return (daxie,xiaoxie)
q = a("LHLJHlj")
print(q)
"""
#编写函数, 接收一个列表(包含30个1~100之间的随机整形数)和一个整形数k, 返回一个新列表.
"""
import  random

def a(numbers, k):

    if k < 0 or k >= len(numbers):
        pass
    else:
        print("请输入30以内的数字")

        numbers[:k] = numbers[:k][::-1]
        numbers[k:] = numbers[k:][::-1]
        return numbers
numbers = [random.randint(1, 100) for i in range(30)]
a1 = a(numbers,10)
print(a1)
"""
##编写函数，从键盘输入参数x和n，计算并显示形如x+xx +xxx + xxxx + xxxxx+xxx…xxx+ 的表达式前n项的值

x = input("请输入：")
n = input("前几项：")
def a(x, n):
    for i in range(1, n+1):
        term = int(str(x) * i)

    return print(term)
a1 = a(x,n)

#写函数,函数接收的4个参数分别是:姓名,性别(默认为男),年龄,地址
"""
def a(name,sex:"男",age,address):
    a1 = {f"姓名：{name}，性别：{sex}，年龄：{age},地址：{address}"}
    return a1
"""
#写函数,接收n个数字,返回这些数字的和(动态传参)
"""
def a(*n):
    a1 = 0
    for i in n:
        a1 += i
    return a1
print(a(1,2,3,4,5,6,7,8))
"""
##在实参中传入多个可迭代对象(要有string,list,tuple,set,dict),将每个对象的每个元素都加到args或kwargs里
"""
def a(arg,kwargs):
    if i not in arg or kwargs:
        arg += i
    
"""
#写函数,把传过来的列表中的每一个元素都用"_"拼接,并返回
"""
def a(a1):
    xiahuaxian = ""
    for i in a1:
       xiahuaxian += i + "_"
    :return xiahuaxian
"""
"""
def a(list1):  
    a1 = []  
    for i in list1:  
        a1.append(i + "_")  
    return a1
"""
#写函数,传入一个数字,返回这个数的阶乘。示例：1x2x3....
"""
def a(n):
    jieguo = 1
    if n == 0:
        return "0"
    if n == 1:
        return 1
    for i in range(2,n+1):
        jieguo *= i
        return jieguo
"""
#编写一个函数，求多个数中的最大值
"""
def a(n):
    max = 0
    for i in n:
        if max < i:
            max = i
            return max
"""
#编写一个函数，提取指定字符串中所有的字母，然后拼接在一起产生一个新的字符串
"""
def a(n):
    s = ''
    for i in n:
        if i > 'a' and i < 'z':
             s+=i
        if i > 'A' and i < 'Z':
             s+=i
        return s
"""
#写一个函数，求多个数的平均值
"""
def a(n):
    sum = 0
    for i in n:
        sum += i
    agv = sum/len(n)
    return agv
"""
#写一个自己的len函数，统计指定序列中元素的个数
"""
def len(a):
    sum = 0
    for i in a:
        sum += 1
"""
#找出传入的列表或元组的奇数位对应的元素，并返回一个新的列表
"""
def a(n):
    list1 = []
    for i in n:
        if range(len(n))%2 != 0:
            list1 += i
            return list1
"""
#水仙花数：个位、十位、百位的立方加在一起等于数的本身
"""
a = input("请输入一个数：")
if (a%10)*(a%10)*(a%10) + ((a/10)%10)*((a/10)%10)*((a/10)%10) + (a/100)*(a/100)*(a/100) == a:
    print("该数为水仙花数")
"""
# 定义函数，有一个形参，传入的是列表，数组大小不超过 100个，
"""
def a(list1):
    list1 = list1[:100]
    list2 = list(set(list1)) 
    return list2
    """
#定义函数 getLength，打印用户传入的容器类型和数据长度
"""
def a(n):
    print(f"type(n)")
    print(f"len(n)")
"""
#定义函数 generateNum( )
#定义函数 moreThan(num)，判断输入的数字是否大于1500
"""
def moreThan(a)
    a = input("请输入数字：")
    if int(a) > 1500:
        print("输入的数字大于1500")
    else:
        print("输入的数字不大于1500")
"""
#定义函数，有两个形参，第一个形参到第二个形参的范围，所有平方数之和
"""
def a(one,two):
        sum = 0
        for i in range(one,two+ 1):
            sum += i*i
        return sum
"""
#写函数，检查传入字典的每一个value长度，如果大于2，那么仅保留前两个长度的内容， 并将新内容返回给调用者
"""
def a(dict1):
    new_dict = {}
    for key, value in dict1.items():
        if len(value) > 2:
            new_dict[key] = value[:2]
        else:
            new_dict[key] = value
    return new_dict
"""
#写函数，判断用户传入的对象（字符串、列表、元组）的元素是否为空
"""
def a(n):
    for i in n:
        if i == "" :
            print("为空")
"""
#编写自定义函数，完成一个简单的减法运算函数
"""
def a(a1,a2):
    if a1 > a2:
        print(a1-a2)
    else:
        print(a2-a1)
"""
#编写自定义函数，可以输出自己的名字即可。
"""
def name():
    print("关博文")
"""
##编写自定义函数：剪刀石头布
"""
def a(user,computer):
"""
#编写一个函数，接受一个字符串作为参数，并返回该字符串的逆序字符串
"""
def a(s):  
    return s[::-1]
"""
#编写一个函数，接受一个数字列表作为参数，并返回其中所有偶数的列表
"""
def a(numbers):
    list1 = []
    for i in numbers:
        if i % 2 == 0:
            list1.append(i)
    return list1
"""
#编写一个函数，接受一个字符串列表作为参数，并返回其中最长的字符串。
"""
def a(s):  
    for i in s:  
        if len(i) > len(longest):  
            longest = s
    return longest
"""
#编写一个函数，接受一个数字列表作为参数，并返回其中所有数字的平方的总和
"""
def a(n):  
    sum = 0  
    for i in n:  
        sum += i * i  
    return sum
"""
##编写一个函数，接受一个字符串作为参数，并返回其中所有单词的首字母的大写形式
"""
def a(s):
    word = s.split()
    for i in word:
    """
#编写一个函数，接受两个列表作为参数，并返回两个列表的交集
"""
def a(list1, list2):
    print(list1&list2)
    """
#定义一个学生注册函数enroll()，打印学生姓名，性别，年龄，城市
"""
def enroll(name, gender, age, city):
    print(f"学生姓名: {name}")
    print(f"性别: {gender}")
    print(f"年龄: {age}")
    print(f"城市: {city}")
"""

